package model

import (
	"smart-health-platforms/config"
	"time"
)

// 分销设置表
type DistributionSetting struct {
	Id               uint32    `gorm:"column:id;type:int UNSIGNED;comment:分销规则主键id;primaryKey;not null;" json:"id"`                                 // 分销规则主键id
	FirstLevelRatio  float64   `gorm:"column:first_level_ratio;type:decimal(10, 2);comment:一级分销比例;not null;default:0.00;" json:"first_level_ratio"` // 一级分销比例
	SecondLevelRatio float64   `gorm:"column:second_level_ratio;type:decimal(10, 2);comment:二级分销比例;not null;" json:"second_level_ratio"`            // 二级分销比例
	MinWithdraw      float64   `gorm:"column:min_withdraw;type:decimal(10, 2);comment:最低提现金额;not null;" json:"min_withdraw"`                        // 最低提现金额
	WithdrawFee      float64   `gorm:"column:withdraw_fee;type:decimal(10, 2);comment:手续费比例;not null;" json:"withdraw_fee"`                         // 手续费比例
	Status           uint32    `gorm:"column:status;type:int UNSIGNED;comment:状态:0禁用 1启用;not null;default:1;" json:"status"`                        // 状态:0禁用 1启用
	CreatedAt        time.Time `gorm:"column:created_at;type:datetime(3);comment:规则添加时间;not null;default:CURRENT_TIMESTAMP(3);" json:"created_at"`  // 规则添加时间
	UpdatedAt        time.Time `gorm:"column:updated_at;type:datetime(3);comment:规则修改时间;default:NULL;" json:"updated_at"`                           // 规则修改时间
}

// 设置与数据库表的映射关系
func (ds *DistributionSetting) TableName() string {
	return "distribution_setting"
}

// 分销设置表
func (ds *DistributionSetting) Create() error {
	return config.DB.Create(&ds).Error
}

// 分销设置详情
func (ds *DistributionSetting) Detail() error {
	return config.DB.Where("id = ?", ds.Id).Limit(1).Find(&ds).Error
}

// 获取分销配置
func (ds *DistributionSetting) Get() error {
	return config.DB.Find(&ds).Error
}
